using AiQiuQuan.Sport.Model.Enums;

namespace AiQiuQuan.Sport.WebApi.Entities
{
    /// <summary>
    /// 场馆订单
    /// </summary>
    public class SiteOrder : BaseEntity
    {
        /// <summary>
        /// 业务订单号
        /// </summary>
        public string SO_OrderNo { get; set; }

        /// <summary>
        /// 微信订单号
        /// </summary>
        public string? SO_WeChatOrderNo { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? SO_OrderRemark { get; set; }

        /// <summary>
        /// 用户id
        /// </summary>
        public Guid? BaseUserID { get; set; }

        /// <summary>
        /// 场馆id
        /// </summary>
        public Guid VenueInfoID { get; set; }

        /// <summary>
        /// 订单总金额
        /// </summary>
        public decimal SO_TotalPrice { get; set; }

        /// <summary>
        /// 优惠金额
        /// </summary>
        public decimal SO_DiscountPrice { get; set; }

        /// <summary>
        /// 实际金额
        /// </summary>
        public decimal SO_ActualPrice { get; set; }

        /// <summary>
        /// 订单状态：1待支付、2待使用、3待评价、4退款售后、5已完成
        /// </summary>
        public VenueOrderStateEnum SO_State { get; set; }

        /// <summary>
        /// 支付方式：1.微信支付、2支付宝支付、3.场馆会员卡支付
        /// </summary>
        public PayTypeEnum? PayType { get; set; }

        /// <summary>
        ///  会员卡类型：1储值卡、2次卡、3打折卡
        /// </summary>
        public MemberCardTypeEnum? MemberCardType { get; set; }

        /// <summary>
        /// 会员卡支付对应的次数、金额
        /// </summary>
        public decimal? CardAmount { get; set; }

        /// <summary>
        /// 用户场馆会员卡ID
        /// </summary>
        public Guid? UserVenueCardId { get; set; }

        /// <summary>
        /// 折扣会员卡折扣（0.1-10）
        /// </summary>
        public decimal? CardDiscount { get; set; }

        /// <summary>
        /// 取消时间
        /// </summary>
        public DateTimeOffset? SO_CancelTime { get; set; }

        /// <summary>
        /// 取消备注
        /// </summary>
        public string? SO_CancelRemark { get; set; }

        /// <summary>
        /// 取消原因
        /// </summary>
        public Guid? SO_CancelReason { get; set; }

        /// <summary>
        /// 取消角色
        /// </summary>
        public OrderCancelTypeEnum? SO_CancelRole { get; set; }

        /// <summary>
        /// 使用积分
        /// </summary>
        public int? SO_UseIntegral { get; set; }

        /// <summary>
        /// 订单信息说明
        /// </summary>
        public string? SO_Explain { get; set; }

        /// <summary>
        /// 自动核销时间
        /// </summary>
        public DateTimeOffset? AutoWriteOffTime { get; set; }

        /// <summary>
        /// 订单是否核销
        /// </summary>
        public bool? IsWriteOff { get; set; }

        /// <summary>
        /// 是否释放场地
        /// </summary>
        public bool? IsReleaseSite { get; set; }
    }
}